查看原文
其他

MySQL 8.0使用三周后,我再也看不上5.7版本了

破产码农 InsideMySQL 2022-10-13

        

破产码农

IT圈最会讲故事的网红 · 南山彭于晏

从2018年4月19日,第一个MySQL 8.0 GA版本8.0.11版本发布至今,已经过去有近3年的时间。

最近三周姜老师“喜提“MySQL 8.0.23,并做了大量的测试与验证,深深地体会到MySQL 8.0的强大。

用过8.0,再想要让我用回5.7,那简直就和开过电车,再开燃油车一样,回不去的。

今天,姜老师将分享自己最喜欢的MySQL 8.0的三大特性。

快速加列


在真实的业务中,DBA的很大一分工作就是需要对表进行DDL变更。

虽然,之前有pt-osc、gh-osc这样工具可以变相完成在线加列的功能。然而,他们都不够快速,也存在不少问题和限制。

在MySQL 8.0版本中,不论表的数据量有多大,加列操作都能瞬间完成,这就是内核原生的快速加列(Instant Add Column)功能。

BTW,这个功能是腾讯工程师陈福荣梁飞龙开发并提交给官方。单就这一个功能,就足以吹嘘一辈子让我们一起为这两位中国工程师点赞。


OLAP改进



MySQL 8.0已经不再满足于仅仅在OLTP领域称王。可以说从8.0版本开始,MySQL将逐渐切入OLAP的赛道。

注意,上面我说的不是最近云环境下的HeatWeave产品,而是官方MySQL。

MySQL 8.0正式支持了Hash Join功能,并且废弃了Block Nested Loop Join算法。在我的生产环境中,SQL执行效率得到大幅提升。

拿MySQL 8.0 + PowerBI来做个5~10T左右的小数仓,真是太适合不过。当然,数据量上去了,现在还得依赖Hadoop的大数据产品。

此外,8.0的CTE(Common Table Expression 通用表表达式)、Window Function(窗口函数)、Exists子查询优化等,都将MySQL对于复杂SQL的支持提升到了一个新高度。


性能提升


MySQL 8.0最大的诱惑在于性能的提升。

与操作系统升级不同的是,MySQL数据库版本每次升级,伴随性能的提升。而不是如操作系统般,同一硬件环境下,性能的倒推,然后倒逼用户升级硬件。

不可否认,MySQL 5.7版本的性能已然有了大幅提升8.0版本中性能还有进一步的提升。可以说,方在性能这块的优化真的是不遗余力。

姜老师最为欣赏的功能是对于doublewrite的优化,即将doublewrite拆成多个文件以及对应内存锁的拆分,这样极大提升了MySQL在极端负载下的写入性能。

另一个性能的提升点在于8.0版本对InnoDB层的整个redo模块进行了重构,消除了之前存在于InnoDB层的一把大锁。

通过上述的优化,MySQL 8.0在sysbench读写测试中,性能较5.7版本提升30%,较之5.6版本性能提升50%。

在sysbench的update测试中,MySQL 8.0版本较5.7版本有1倍的提升,较之5.6也有50%的性能提升。

注意5.7版本的UPDATE性能有退化。


此外,虽然字符集UTFMB4已经使用非常广泛,但8.0对于UTF8字符集的处理效率更高,因此能有更出色的性能。

在sysbench只读测试环境下,MySQL 8.0比5.7能有40%的性能提升

一分钱不花,用上MySQL 8.0,性能就能有30%~100%的,是不是做梦都会笑醒?


总结



无论你是否相信,老大哥Oracle数据库在国内大势已去,未来五年内,国内银行、证券、电信等领域将彻底完成去O。

感谢Trump,让去IOE的进程提速至少5年的时间。本来一些old money们还犹犹豫豫,舍不得放下这么大一块肥肉,而现在,没有了任何可以回避的理由。

从18年前知道PostgreSQL数据库伊始,PG一直扮演的是玄门正宗,追赶MySQL的角色。MySQL 8.0 OLAP、MGR功能的强化,已经让PG数据库所谓的most advanced open source database的称号摇摇欲坠。

至于那些新时代的NewSQL新星们,不论是Aurora、OceanBase、TiDB们等,本质上,他们一点都不New,都是MySQL这个时代的产物。

所以,姜老师的结论是:在传统OLTP领域,MySQL拿着望远镜都找不到对手。然后8.0版本又消无声息地将手伸进了OLAP的口袋。

不要犹豫,赶紧升级到MySQL 8.0,相信我,一旦用上了,你肯定会再次爱上她——这个星球上最有魅力的数据库。

MySQL, the most attractive database in the world.



直播预告



重磅预告:本周四(4月15日)晚21点30分,姜老师将带来万众期待的MySQL vs Memcached的世纪大战的直播。请关注下列视频直播间:

视频号:破产码农

抖音号:破产码农



IMG群是码农的交流社区,IMG微信群交流内容包括但不限于技术、经济、军事、八卦等话题。欢迎有态度的码农们加入IMG大家庭。
IMG目前有少林群、武当群、峨眉群、华山群、M悦会(高端VIP群)
仅限码农入群,猎头或其他行业勿加,入群请加姜老师个人微信 82946772,并备注:码农入IMG群
-----------------------
公众号:破产码农
视频号:破产码农
抖音号:破产码农
B站号:姜老师带你飞
长按下图二维码关注,将感受到一个有趣的灵魂,每篇文章都会有新惊喜。

          

往期推荐

这样写SQL,让你的MySQL性能提升20%+


QPS从20W到140W,一个参数让MySQL 8.0性能提升7倍


码农的三大错觉


不要太惊讶!120W QPS对MySQL 5.7就是这么轻松


给有梦想的年轻人建议:八卦无尽阵


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存